package com.spring.springboot.controller;

import com.spring.springboot.Service.UserListService;
import com.spring.springboot.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.*;

/**
 * @author lking
 * @date 2019/11/27 20:26
 **/

@RestController
@RequestMapping(value="/users")     // 通过这里配置使下面的映射都在/users下
public class UserController {

    // 创建线程安全的Map
    static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());

    @Autowired
    UserListService userListService;

    @GetMapping("/")
    public List<User> list(){
        List<User> users = userListService.findAll();
        return users;
    }



    //员工添加
    //SpringMVC自动将请求参数和入参对象的属性进行一一绑定；要求请求参数的名字和javaBean入参的对象里面的属性名是一样的
    @PostMapping("/")
    //@RequestBody解析前台传来的POST body中json
    public String addEmp(@RequestBody User user){
        //来到员工列表页面

        System.out.println("aa"+user);
        //System.out.println("保存的员工信息："+user);
        //保存员工
       userListService.insertUser(user);
        // redirect: 表示重定向到一个地址  /代表当前项目路径
        // forward: 表示转发到一个地址
        return "Success!";
    }

    //来到修改页面，查出当前员工，在页面回显
    @GetMapping("/{id}")
    public User toEditPage(@PathVariable("id") Integer id){
        System.out.println(id);
        User user = userListService.getUsertById(id);


        return user;
    }

    //员工修改；需要提交员工id；
    @PutMapping("/")
    public String updateEmployee(@RequestBody User user){
        System.out.println("修改的员工数据："+user);
        userListService.updateUser(user);
        return "Success!";
    }

    //员工删除
    @DeleteMapping("/{id}")
    public String deleteEmployee(@PathVariable("id") Integer id){
        userListService.deleteUserById(id);
        return  "Success!";
    }

}